package com.cskaoyan.mapper;

import com.cskaoyan.bean.Student;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface StudentMapper {

    Student selectStudentById(@Param("id") Integer id);


    // 通过条件来查询
    // 假如Id有值，那么通过id来查询；假如id没有值，判断一下name是否有值，假如有值，通过name来查询
    // 假如两个都没有值，那么查询所有的
    List<Student> selectStudentByIdOrName(@Param("id") Integer id, @Param("name") String name);


    List<Student> selectStudentByIdOrNameUseChoose(@Param("id") Integer id, @Param("name") String name);


    // 根据Id修改Student
    // 假如 除了id之外的其他字段传了值，那么修改为对应的值
    // 假如 除了id之外的其他字段没有传值，那么不修改原表中的数据
    int updateStudentById(Student student);


    int updateStudentByIdUseSet(Student student);


    // 插入一个Student
    // 并且获取自增的id值
    int insertStudentAndReturnAutoId(@Param("student") Student student);

    // 插入一个Student
    // 并且获取自增的id值
    int insertStudentAndReturnAutoIdUseGeneratedKeys(@Param("student") Student student);


    // in 查询， 传入集合
    //  select * from student where id in (1,2,3,4);
    List<Student> selectStudentListByIds(@Param("ids") List<Integer> ids);


    // 批量插入
    int insertStudentArray(Student[] students);

}
